package com.company.cloud.mall.modules.app.controller.req;

import java.math.BigDecimal;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

import com.company.cloud.common.bean.BaseParam;
import com.company.cloud.common.bean.DataMapEntity;
import com.company.cloud.common.constant.BaseConstant.YNEnum;
import com.company.cloud.mall.constant.ShippingMethodEnum;

import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class OrderByProductSingleSaveParam extends BaseParam {

	@ApiModelProperty(value = "用户ID")
	private Integer userId;

	@ApiModelProperty(value = "商品编号", required = true)
	@NotEmpty(message = "#商品编号不能为空")
	private String productNo;

	@ApiModelProperty(value = "SKU商品号", required = true)
	@NotEmpty(message = "#SKU商品号不能为空")
	private String skuNo;
	
	@ApiModelProperty(value = "裱框编号")
	private String frameNo;
	
    @ApiModelProperty(value = "扩展信息1")
    private String extendOne;
    
    @ApiModelProperty(value = "扩展信息2")
    private String extendTwo;
    
    @ApiModelProperty(value = "扩展信息3")
    private String extendThree;

	@ApiModelProperty(value = "数量", required = true)
	@NotNull(message = "#数量不能为空")
	private Integer quantity;

	@ApiModelProperty(value = "购物车ID")
	private Integer cartId;

	@ApiModelProperty(value = "收货地址")
	private Integer addrId;

	@ApiModelProperty(value = "配送方式【ShippingMethodEnum】")
	private String shippingMethod = ShippingMethodEnum.General_Shipping.getCode();

	@ApiModelProperty(value = "运费")
	private BigDecimal freight = BigDecimal.ZERO;

	@ApiModelProperty(value = "优惠码")
	private String couponCode;

//	@ApiModelProperty(value = "优惠码折扣金额")
//	private BigDecimal couponDiscountFund = BigDecimal.ZERO;

	@ApiModelProperty(value = "用户留言")
	private String userMemo;

	@ApiModelProperty(value = "是否需要发票", required = true)
	@NotEmpty(message = "#是否需要发票不能为空")
	private String isInvoice = YNEnum.NO.getCode();

	@ApiModelProperty(value = "发票类型")
	private String invoiceType;

	@ApiModelProperty(value = "发票抬头")
	private String invoiceTitle;

	@ApiModelProperty(value = "发票税号")
	private String invoiceTaxNo;

	@ApiModelProperty(value = "发票内容")
	private String invoiceContent;

	@ApiModelProperty(value = "使用人手机号码")
	private String useUserMobile;

	@ApiModelProperty(value = "使用人姓名")
	private String useUserName;

	@ApiModelProperty(value = "订单参数")
	private DataMapEntity orderParam;

}
